import { Modal } from 'ant-design-vue'

/**
 * 封装Modal.confirm函数，默认提示内容为删除提示
 * @param {Object} options 
 * @param {String} options.content 提示内容
 * @param {Function} options.callback 点击确定后，执行的回调函数，该函数可以返回一个Promise对象，当返回的Promise的resolve被调用，弹窗会自动关闭
 */
export function packageConfirm(options = {}) {
  return new Promise((resolve,reject) => {
    const modalInstance = Modal.confirm({
      content: options.content || '确认删除该数据？',
      cancelText: options.cancelText || '取消',
      okText: options.okText || '确认',
      maskClosable: options.maskClosable || false,
      onOk() {
        if(options.callback) {
          return Promise.resolve(options.callback()).then(() => {
            resolve()
          }).catch((e) => {
            console.error(e)
            reject()
          })
        } else {
          resolve()
          modalInstance.destroy()
        }
      },
      onCancel() {
        resolve('cancel')
      }
    })
  })
}
